#!/usr/bin/env python
# - * - mode: python; coding: utf-8 - * -

# 

import copy, sys, json, webapp2
from random import choice

class Both(webapp2.RequestHandler):
	# Поворот матрицы состояния на -90 град
	def rotation_matrix(self, matrix):
		res = copy.deepcopy(matrix)
		for i in xrange(len(res)):
			for j in xrange(len(res[i])):
				res[len(res[i])- j - 1][i] = matrix[i][j]
		return res
	
	# Поворот матрицы состояния на -90 град n раз
	def rotation_matrix_n(self, n):
		res = []
		res.append(self.rotation_matrix(self.matrix_situation))
		for i in xrange(n - 1):
			res.append(self.rotation_matrix(res[i]))
		return res[-1]
	
	# Считываем данные запроса и отправляем ответ
	def post(self):
		if len(self.request.body) > 100:
			sys.exit()
		self.matrix_situation = json.loads(self.request.body)
		self.response.headers['Content-Type'] = 'text/plan'
		self.response.out.write(self.rotation_matrix_n(3))
	
	# Делаем ветвление хода
	def next_step(self, array, n):
		# массив куда будут заноситься возможные ходы 
		data_step = {}
		for i in xrange(len(array)):
			for j in xrange(len(array[i])):
				if array[i][j] == 0:
					key_step = str(i) + "," + str(j)
					data_step[key_step] = copy.deepcopy(array)
					data_step[key_step][i][j] = n
		return data_step
	
	# Проверка победы одного из игроков
	def check_victory(self, array):
		victory = 0
		for i in xrange(len(array)):
			if array[i][0] == array[i][1] == array[i][2] and array[i][0] != 0:
				victory = array[i][0]
				break
		for i in xrange(len(array)):
			if array[0][i] == array[1][i] == array[i][2] and array[2][i] != 0:
				victory = array[0][1]
				break
		if array[0][0] == array[1][1] == array[2][2] and array[2][2] != 0:
				victory = array[2][2]
		if array[2][0] == array[1][1] == array[0][2] and array[0][2] != 0:
				victory = array[0][2]
		return victory



